extends Card

# 保护卡牌 - 展示两套Modified系统的用法

func get_default_tooltip() -> String:
	return tooltip_text

func get_updated_tooltip(player_modifiers: ModifierHandler, enemy_modifiers: ModifierHandler) -> String:
	return tooltip_text

func apply_effects(targets: Array[Node], modifiers: ModifierHandler) -> void:
	# 方法1: 使用ModifierHandler系统 - 立即生效的伤害减少
	for target in targets:
		if target is Player:
			apply_immediate_damage_reduction(target)
	
	# 方法2: 使用StatModification系统 - 调度的属性修改
	if scheduled_effect and targets and targets.size() > 0:
		apply_scheduled_effects(targets)
	
	super.apply_effects(targets, modifiers)

# 方法1: ModifierHandler系统 - 实时战斗修改
func apply_immediate_damage_reduction(target: Player) -> void:
	var dmg_taken_modifier: Modifier = target.modifier_handler.get_modifier(Modifier.Type.DMG_TAKEN)
	if dmg_taken_modifier:
		# 创建伤害减少修改器
		var reduction_value := ModifierValue.create_new_modifier(
			"protection_card_effect",
			ModifierValue.Type.FLAT
		)
		reduction_value.flat_value = -1  # 所有伤害减少1点
		
		# 添加修改器（立即生效，持续整场战斗）
		dmg_taken_modifier.add_new_value(reduction_value)
		print("🛡️ 立即效果：%s 获得伤害减少-1（ModifierHandler）" % target.name)

# 方法2: StatModification系统 - 调度修改
func apply_scheduled_effects(targets: Array[Node]) -> void:
	var target_node = targets[0]
	if target_node and target_node.is_inside_tree():
		var battle = target_node.get_tree().get_first_node_in_group("battle")
		if battle and battle.resource_scheduler:
			# 复制调度效果
			var effect_instance = scheduled_effect.duplicate()
			
			# 添加到调度器（基于回合/阶段触发）
			battle.resource_scheduler.add_scheduled_effect(effect_instance)
			print("⏱️ 调度效果：已添加StatModification效果" ) 
